import 'package:cateapp/generated/json/base/json_convert_content.dart';
import 'package:cateapp/generated/json/base/json_field.dart';

class JuejinListEntity with JsonConvert<JuejinListEntity> {
	@JSONField(name: "err_no")
	int errNo;
	@JSONField(name: "err_msg")
	String errMsg;
	List<JuejinListData> data;
}

class JuejinListData with JsonConvert<JuejinListData> {
	@JSONField(name: "article_id")
	String articleId;
	@JSONField(name: "article_info")
	JuejinListDataArticleInfo articleInfo;
	@JSONField(name: "author_user_info")
	JuejinListDataAuthorUserInfo authorUserInfo;
	JuejinListDataCategory category;
	List<JuejinListDataTag> tags;
	@JSONField(name: "user_interact")
	JuejinListDataUserInteract userInteract;
	JuejinListDataOrg org;
}

class JuejinListDataArticleInfo with JsonConvert<JuejinListDataArticleInfo> {
	@JSONField(name: "article_id")
	String articleId;
	@JSONField(name: "user_id")
	String userId;
	@JSONField(name: "category_id")
	String categoryId;
	@JSONField(name: "tag_ids")
	List<int> tagIds;
	@JSONField(name: "visible_level")
	int visibleLevel;
	@JSONField(name: "link_url")
	String linkUrl;
	@JSONField(name: "cover_image")
	String coverImage;
	@JSONField(name: "is_gfw")
	int isGfw;
	String title;
	@JSONField(name: "brief_content")
	String briefContent;
	@JSONField(name: "is_english")
	int isEnglish;
	@JSONField(name: "is_original")
	int isOriginal;
	@JSONField(name: "user_index")
	int userIndex;
	@JSONField(name: "original_type")
	int originalType;
	@JSONField(name: "original_author")
	String originalAuthor;
	String content;
	String ctime;
	String mtime;
	String rtime;
	@JSONField(name: "draft_id")
	String draftId;
	@JSONField(name: "view_count")
	int viewCount;
	@JSONField(name: "collect_count")
	int collectCount;
	@JSONField(name: "digg_count")
	int diggCount;
	@JSONField(name: "comment_count")
	int commentCount;
	@JSONField(name: "hot_index")
	int hotIndex;
	@JSONField(name: "is_hot")
	int isHot;
	@JSONField(name: "rank_index")
	double rankIndex;
	int status;
	@JSONField(name: "verify_status")
	int verifyStatus;
	@JSONField(name: "audit_status")
	int auditStatus;
	@JSONField(name: "mark_content")
	String markContent;
}

class JuejinListDataAuthorUserInfo with JsonConvert<JuejinListDataAuthorUserInfo> {
	@JSONField(name: "user_id")
	String userId;
	@JSONField(name: "user_name")
	String userName;
	String company;
	@JSONField(name: "job_title")
	String jobTitle;
	@JSONField(name: "avatar_large")
	String avatarLarge;
	int level;
	String description;
	@JSONField(name: "followee_count")
	int followeeCount;
	@JSONField(name: "follower_count")
	int followerCount;
	@JSONField(name: "post_article_count")
	int postArticleCount;
	@JSONField(name: "digg_article_count")
	int diggArticleCount;
	@JSONField(name: "got_digg_count")
	int gotDiggCount;
	@JSONField(name: "got_view_count")
	int gotViewCount;
	@JSONField(name: "post_shortmsg_count")
	int postShortmsgCount;
	@JSONField(name: "digg_shortmsg_count")
	int diggShortmsgCount;
	bool isfollowed;
	@JSONField(name: "favorable_author")
	int favorableAuthor;
	int power;
	@JSONField(name: "study_point")
	int studyPoint;
	JuejinListDataAuthorUserInfoUniversity university;
	JuejinListDataAuthorUserInfoMajor major;
	@JSONField(name: "student_status")
	int studentStatus;
	@JSONField(name: "select_event_count")
	int selectEventCount;
	@JSONField(name: "select_online_course_count")
	int selectOnlineCourseCount;
	int identity;
	@JSONField(name: "is_select_annual")
	bool isSelectAnnual;
	@JSONField(name: "select_annual_rank")
	int selectAnnualRank;
	@JSONField(name: "annual_list_type")
	int annualListType;
}

class JuejinListDataAuthorUserInfoUniversity with JsonConvert<JuejinListDataAuthorUserInfoUniversity> {
	@JSONField(name: "university_id")
	String universityId;
	String name;
	String logo;
}

class JuejinListDataAuthorUserInfoMajor with JsonConvert<JuejinListDataAuthorUserInfoMajor> {
	@JSONField(name: "major_id")
	String majorId;
	@JSONField(name: "parent_id")
	String parentId;
	String name;
}

class JuejinListDataCategory with JsonConvert<JuejinListDataCategory> {
	@JSONField(name: "category_id")
	String categoryId;
	@JSONField(name: "category_name")
	String categoryName;
	@JSONField(name: "category_url")
	String categoryUrl;
	int rank;
	int ctime;
	int mtime;
	@JSONField(name: "show_type")
	int showType;
}

class JuejinListDataTag with JsonConvert<JuejinListDataTag> {
	int id;
	@JSONField(name: "tag_id")
	String tagId;
	@JSONField(name: "tag_name")
	String tagName;
	String color;
	String icon;
	@JSONField(name: "back_ground")
	String backGround;
	@JSONField(name: "show_navi")
	int showNavi;
	int ctime;
	int mtime;
	@JSONField(name: "id_type")
	int idType;
	@JSONField(name: "tag_alias")
	String tagAlias;
	@JSONField(name: "post_article_count")
	int postArticleCount;
	@JSONField(name: "concern_user_count")
	int concernUserCount;
}

class JuejinListDataUserInteract with JsonConvert<JuejinListDataUserInteract> {
	int id;
	int omitempty;
	@JSONField(name: "user_id")
	int userId;
	@JSONField(name: "is_digg")
	bool isDigg;
	@JSONField(name: "is_follow")
	bool isFollow;
	@JSONField(name: "is_collect")
	bool isCollect;
}

class JuejinListDataOrg with JsonConvert<JuejinListDataOrg> {
	@JSONField(name: "org_info")
	dynamic orgInfo;
	@JSONField(name: "org_user")
	dynamic orgUser;
	@JSONField(name: "is_followed")
	bool isFollowed;
}
